package com.ktgj.customer.service;

import java.util.List;
import com.ktgj.customer.domain.Returncard;
import com.ktgj.customer.domain.dto.RefuseCardCustomerDataDTO;

/**
 * 退卡申请Service接口
 * 
 * @author ruoyi
 * @date 2021-09-15
 */
public interface IReturncardService 
{
    /**
     * 查询退卡申请
     * 
     * @param orderId 退卡申请ID
     * @return 退卡申请
     */
    public Returncard selectReturncardById(Long orderId);

    /**
     * 查询退卡申请列表
     * 
     * @param returncard 退卡申请
     * @return 退卡申请集合
     */
    public List<Returncard> selectReturncardList(Returncard returncard);

    /**
     * 新增退卡申请
     * 
     * @param returncard 退卡申请
     * @return 结果
     */
    public int insertReturncard(Returncard returncard);

    /**
     * 修改退卡申请
     * 
     * @param returncard 退卡申请
     * @return 结果
     */
    public int updateReturncard(Returncard returncard);

    /**
     * 批量删除退卡申请
     * 
     * @param orderIds 需要删除的退卡申请ID
     * @return 结果
     */
    public int deleteReturncardByIds(Long[] orderIds);

    /**
     * 删除退卡申请信息
     * 
     * @param orderId 退卡申请ID
     * @return 结果
     */
    public int deleteReturncardById(Long orderId);

    //申请退卡
    public int applyRefund(Returncard returncard);

    //退卡申请未通过
    public int refuseRefund(Long returnCardId);

    //退卡申请通过
    public int refundApproved(Long returnCardId) throws Exception;

    RefuseCardCustomerDataDTO queryRefuseCardData(Long customerId, String cardCode, Long cardId);
}
